package net.osweb.core.tools.utils;

import java.io.UnsupportedEncodingException;

/**
 * 
 * @author 孟博
 *
 */
public class StringUtil {

	public static String trim(String str){
        StringBuffer sbr = new StringBuffer();
        String[] str1 = str.split(" "); //把原字符串按空格分割
        for(int i = 0;i<str1.length;i++)
        {
            if(str1[i] != "") 
            {
            	sbr.append(str1[i]); //
            }
        }
        return sbr.toString();
	}
	
	public static String getChinese(String s) {
		try {
			return new String(s.getBytes("gb2312"), "iso-8859-1");
		} catch (UnsupportedEncodingException e) {
			return s;
		}
	}
	
	public static String filterHtml(String input) {
		if (input == null) {
		return null;
		}
		if (input.length() == 0) {
		return input;
		}
		input = input.replaceAll("&", "&amp;");
		input = input.replaceAll("<", "&lt;");
		input = input.replaceAll(">", "&gt;");
		input = input.replaceAll(" ", "&nbsp;");
		input = input.replaceAll("'", "&#39;");
		input = input.replaceAll("\"", "&quot;");
		return input.replaceAll("\n", "<br>");
	}
	
	/**
	 * 把html里面的属性加上冒号
	 * @param string
	 * @return
	 */
	public static String replaceAttributedoubleQuotationMarks(String string) {
		String str = string;
		String[] strTempArray = str.split("=");
		String tempStr = null;
		StringBuffer allStr = new StringBuffer(strTempArray[0]);
		
		String splitStr = null;
		for(int i=1; i < strTempArray.length ; i++){
			tempStr = strTempArray[i];
			if(tempStr.indexOf("\"") != -1){
				allStr.append("=" + tempStr);
			}else if(tempStr.indexOf(" ") == -1){
				if(tempStr.indexOf("\"") == -1){
					if("".equals(tempStr)){
//						allStr += ;
						allStr.append("=");
					}else if(tempStr.indexOf(">") == -1){
//						allStr += "=" + tempStr;
						allStr.append("=" + tempStr);
					}else if(checkIsUserWord(tempStr)){
//						allStr += "=" + tempStr;
						allStr.append("=" + tempStr);
					}else{
//						allStr += replaceString(tempStr);
						allStr.append(replaceString(tempStr));
					}
				}
			}else if(tempStr.indexOf(" ") < tempStr.indexOf(">")){
				if(tempStr.indexOf("\"") == -1){
					if("".equals(tempStr)){
//						allStr += "=";
						allStr.append("=");
					}else if(tempStr.indexOf(">") == -1){
//						allStr += "=" + tempStr;
						allStr.append( "=" + tempStr);
					}else if(checkIsUserWord(tempStr)){
//						allStr +=   "=" + tempStr;
						allStr.append( "=" + tempStr);
					}else{
						splitStr = tempStr.substring(tempStr.indexOf(" ") );
//						allStr += tempStr.replaceFirst(splitStr, "=\"" + splitStr + "\"");
						allStr.append(tempStr.replaceFirst(splitStr, "=\"" + splitStr + "\""));
					}
				}
			}else if(tempStr.indexOf(" ") > tempStr.indexOf(">")){
				if(tempStr.indexOf("\"") == -1){
					if("".equals(tempStr)){
//						allStr += "=";
						allStr.append("=");
					}else if(tempStr.indexOf(">") == -1){
//						allStr += "=" + tempStr;
						allStr.append("=" + tempStr);
					}else if(checkIsUserWord(tempStr)){
//						allStr += "=" + tempStr;
						allStr.append("=" + tempStr);
					}else{
//						allStr += replaceString(tempStr);
						allStr.append(replaceString(tempStr));
					}
				}
			}
		}
		return allStr.toString();
	}
	
	
	private static boolean checkIsUserWord(String tempStr){
		return tempStr.indexOf(">") > tempStr.indexOf("<");
	}
	
	private static String replaceString(String tempStr){
		String splitStr = tempStr.substring(0, tempStr.indexOf(">"));
		return tempStr.replaceFirst(splitStr, "=\"" + splitStr + "\"");
	}
	
	/**
	 * pdf 替换空格
	 * @param str
	 * @return
	 */
	public static String replaceNbsp(String str){
		return str.replaceAll("&nbsp;", "&#160;");
	}
	
}
